package com.its.common.net.client.config;

import com.its.common.net.core.codec.DecoderBuildParams;
import io.netty.channel.SimpleChannelInboundHandler;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @Author xiaxp
 * @Date 9/13/22 15:22
 * @Description
 */
@AllArgsConstructor
@Builder
@NoArgsConstructor
@Data
public class ClientParams {
    /** 可选参数, 默认0，随机本地端口, 支持指定本地端口 */
    @Builder.Default
    private int localPort = 0;

    /** 远程服务器地址 */
    private ServerAttr serverAttr;

    /** 解码参数配置，TCP需要，防止粘包 */
    private DecoderBuildParams decoderBuildParams;

    /** 处理器组 */
    private List<SimpleChannelInboundHandler> handlers;

    /** 读超时时间，单位秒（超出时间未收到数据，关闭channel）， 0 不关闭*/
    @Builder.Default
    private int readerIdleTime = 0;

    /** 心跳配置 */
    private HeartbeatDetectorDefine heartbeatDefine;
}
